package server;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

//D:\用户目录\我的图片\java42.jpg

public class AdvancedFileThread extends Thread {
	private Socket s;

	public AdvancedFileThread(Socket s) {
		this.s = s;
	}

	@Override
	public void run() {
		System.out.println("准备给" + s + "发送文件！");
		try {
			// 先发一个字节，表示文件名长度（byte）。
			// 然后再发文件名
			// 然后再发文件内容
			// in不要了
			File sendf = new File("E:\\BaiduNetdiskDownload\\job-salary.png");
			FileInputStream fin = new FileInputStream(sendf);
			byte[] b = new byte[fin.available()];// 不保险，小文件可以。
			int len = fin.read(b);

			OutputStream out = s.getOutputStream();
			byte[] namebyte = sendf.getName().getBytes();
			out.write(namebyte.length);// 文件名长度
			out.write(namebyte);// 文件名

			out.write(b, 0, len);// 文件内容！
			out.flush();
			System.out.println("文件发送给" + s + "成功！");
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			// e.printStackTrace();
			System.out.println(e.getMessage());
		} finally {
			try {
				s.close();
			} catch (IOException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
		}

	}
}
